/**
 * 图片
 * @author hanson
 */
define(['jquery', 'jquery-validate-messages_zh', 'layer', 'public/js/util', 'public/js/fileUtil', 'datatables.net-bs'],
		function($, Validate, Layer, Util, FileUtil){
	
	var Page = {}, DOM;
	
	function init(){
		DOM = {
				form: $('#form'),
				btnSubmit: $('#btnSubmit'),
				selLinkType: $('.selLinkType'),
				inpLinkData: $('.inpLinkData'),
				divUrl: $('.divUrl'),
				divArticle: $('.divArticle'),
				divArticleClass: $('.divArticleClass'),
				btnChooseArticle: $('.btnChooseArticle'),
				modalArticle: $('#modalArticle'),
				imgFile: $('#imgFile'),
				imgContent: $('#imgContent'),
				inpAccessoryId: $('.inpAccessoryId')
		}
	}
	
	Page.main = function(){
		init();
		handleEvent();
	}
	
	function handleEvent(){
		// 表单校验
		DOM.form.validate({
			rules : {
				photoPositionId:{required:true},
				name:{required:true},
				'link.type':{required:true}
			},
		});
		
		// 链接类型下拉框改变事件
		DOM.selLinkType.change(function(){
			var $divLink = DOM.divUrl.add(DOM.divArticle).add(DOM.divArticleClass);
			$divLink.addClass('hidden');
			var type = $(this).val();
			if(type == 'url'){
				DOM.divUrl.removeClass('hidden');
			}else if(type == 'article'){
				DOM.divArticle.removeClass('hidden');
			}else if(type == 'articleClass'){
				DOM.divArticleClass.removeClass('hidden');
			}
		});
		// 默认选中第一个
		DOM.selLinkType.change();
		
		// 选择文章
		DOM.btnChooseArticle.click(function(){
			$.ajax({
				url: 'articleList',
				type:'get',
				data:{},
				contentType:'html',
				success:function(data){
					DOM.modalArticle.find('.box-body').html(data);
				}
			});
			DOM.modalArticle.modal('show');
		});
		
		// 给文章弹框的搜索按钮绑定事件
		DOM.modalArticle.find('#formList .btnSearch').click(function(){
			var formData = $(this).closest('#formList').serialize();
			$.ajax({
				url: 'articleList',
				type:'get',
				data: formData,
				contentType:'html',
				success:function(data){
					DOM.modalArticle.find('.box-body').html(data);
				}
			});
		});
		
		//预览图片
        DOM.imgFile.change(function () {
            //获取文件
            var file = DOM.imgFile.get(0).files[0];
            //创建读取文件的对象
            var reader = new FileReader();
            //创建文件读取相关的变量
            var img;

            //为文件读取成功设置事件
            reader.onload = function (e) {
//            alert('文件读取完成');
            	img = e.target.result;
                DOM.imgContent.attr('src', img);
            };

            $("#uploadFile").hide();
            $("#deletePhoto").show();

            //正式读取文件
            reader.readAsDataURL(file);
        });
		
		// 提交表单
		DOM.btnSubmit.click(function(){
			var file = DOM.imgFile.get(0).files[0];
            var data;
            FileUtil.upload(file, function (rs) {
                data = rs;
            });
            DOM.inpAccessoryId.val(data.id);
            console.log('data', data);
			if(DOM.form.valid()){
				var linkType = DOM.selLinkType.val();
				var linkData = makeLinkData(linkType);
				if(!checkLinkData(linkType, linkData)){
					return false;
				}
				DOM.inpLinkData.val(JSON.stringify(linkData));
				DOM.form.submit();
			}
		});
	}
	
	function makeLinkData(type){
		switch(type){
			case 'url':{
				return {
					'url': $('.inpUrl').val()
				};
			}
			case 'article':{
				return {
					'id': $('.inpArticleId').val()
				};
			}
			case 'articleClass':{
				return {
					'id': $('.selArticleClassId').val()
				};
			}
			return {};
		}
	}
	
	function checkLinkData(type, data){
		switch(type){
			case 'url':{
				if(Util.isEmpty(data.url)){
					Layer.alert('链接不能为空');
					return false;
				}
				break;
			}
			case 'article':{
				if(Util.isEmpty(data.id)){
					Layer.alert('文章不能为空');
					return false;
				}
				break;
			}
			case 'articleClass':{
				if(Util.isEmpty(data.id)){
					Layer.alert('文章分类不能为空');
					return false;
				}
				break;
			}
		}
		return true;
	}
	
	function chooseArticle(ele){
		$tr = $(ele).closest('tr');
		console.log($tr.data('title'));
		DOM.divArticle.find('.inpArticleId').val($tr.data('id'));
		DOM.divArticle.find('.inpArticleTitle').val($tr.data('title'));
		DOM.modalArticle.modal('hide');
	}
	
	// 对外访问
	var method = {
			chooseArticle: chooseArticle
	}
	
	$.extend(Page, method);
	return Page;
});